package Factory.Impl;

import Constraints.IConstraint;
import Constraints.Impl.ActorConstraint;
import Constraints.Impl.CommunicationDiagramConstraint;
import Constraints.Impl.LinkConstraint;
import Constraints.Impl.MessageConstraint;
import Constraints.Impl.ObjectConstraint;
import Constraints.Impl.StateConstraint;
import Constraints.Impl.StateMachineDiagramConstraint;
import Constraints.Impl.TransitionConstraint;
import Factory.IConstraintFactory;

/**
 * Projeto de TCC: Editor de Diagramas de comunicação BlueJ
 * @author Jose
 */
public class ConstraintFactory implements IConstraintFactory {

    private IConstraint linkConstraint;
    private IConstraint objectConstraint;
    private IConstraint messageConstraint;
    private IConstraint actorConstraint;
    private IConstraint communicationDiagramConstraint;
    private IConstraint stateConstraint;
    private IConstraint transitionConstraint;
    private IConstraint stateMachineConstraint;

    public ConstraintFactory() {
        linkConstraint = new LinkConstraint();
        objectConstraint = new ObjectConstraint();
        messageConstraint = new MessageConstraint();
        actorConstraint = new ActorConstraint();
        communicationDiagramConstraint = new CommunicationDiagramConstraint();
        stateConstraint = new StateConstraint();
        transitionConstraint = new TransitionConstraint();
        stateMachineConstraint = new StateMachineDiagramConstraint();
    }

    @Override
    public IConstraint getLinkConstraint() {
        return this.linkConstraint;
    }

    @Override
    public IConstraint getObjectConstraint() {
        return this.objectConstraint;
    }

    @Override
    public IConstraint getMessageConstraint() {
        return this.messageConstraint;
    }

    @Override
    public IConstraint getActorConstraint() {
        return this.actorConstraint;
    }

    @Override
    public IConstraint getCommunicationDiagramConstraint() {
        return this.communicationDiagramConstraint;
    }

    @Override
    public IConstraint getStateConstraint() {
        return this.stateConstraint;
    }
    
    @Override
    public IConstraint getTransitionConstraint(){
        return this.transitionConstraint;
    }

    @Override
    public IConstraint getStateMachineContraint() {
        return this.stateMachineConstraint;
                
    }
}
